package com.aizuda.boot.modules.business.counterparty.entity.dto;


import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

/**
 * 新增银行信息请求DTO
 */
@Data
@Schema(description = "新增银行信息请求")
public class CreateBankInfoReqDTO {

    @Schema(description = "银行编号")
    private String bankCode;

    @Schema(description = "银行国家代码，如：CN、US等")
    private String bankCountry;

    @Schema(description = "银行名称", required = true)
    @NotBlank(message = "银行名称不能为空")
    private String bankName;

    @Schema(description = "账户名", required = true)
    @NotBlank(message = "账户名不能为空")
    private String accountName;

    @Schema(description = "账号", required = true)
    @NotBlank(message = "账号不能为空")
    private String accountNumber;

    @Schema(description = "银行内部ID")
    private String bankInternalId;

    @Schema(description = "币种", required = true)
    private String currency;

    @Schema(description = "总账科目")
    private String generalLedgerAccount;

    @Schema(description = "清算科目")
    private String clearingAccount;

    @Schema(description = "账户属性描述")
    private String accountAttributeDesc;

    @Schema(description = "绑定类型，如：交易方、法人")
    @NotBlank(message = "绑定类型不能为空")
    private String bindingType;

    @Schema(description = "绑定对象ID，交易方ID或法人ID", required = true)
    @NotBlank(message = "绑定对象ID不能为空")
    private String bindingId;
} 